<?php
namespace Util;
class Upload{
    //命名空间是所在的目录
    //类名是文件名前端部分
    function upload($maxSize=1048576,$check='check'){
        $check=I('post.'.$check); //从post中获取检测的数组
        $images_file=array();
        //$crops=array();
        $thumbs=array();
        $waters=array();
        $upload=new \Think\Upload(); //实例化上传类
        $upload->maxSize=$maxSize; //设置文件最大是2M  2的10次方
        $upload->exts= array('jpg','gif','png','jpeg');//设置图片上传类型
        $upload->rootPath='./Public/Uploads/'.CONTROLLER_NAME.'/'; //根目录

        if(!is_dir($upload->rootPath)){
            //is_dir判断目录是否存在
            mkdir($upload->rootPath,0777,true); //如果不存在就创建
        }
        $result=$upload->upload();  //上传

        if($result){

            $check=I('post.check',array()); //$_POST['check]
            foreach($result as $k=>$v){ //遍历返回结果
                $file=$upload->rootPath.$v['savepath'].$v['savename'];//上传的原图
                //如果图片序号在check数组中，表示用户预览时没有删除图片
                if(in_array($k,$check)){

                    //$crop_file=$upload->rootpath.$v['savepath'].'crop_'.$v['savename'];//裁剪之后要保存的文件位置名称
                    $img=new \Think\Image(); //实例化image类
                    //打开原图  裁剪  保存
                    //$img->open($file)->crop(200,100,200,200)->save($crop_file);
                    //缩略图
                    $thumb_file=$upload->rootPath.$v['savepath'].'thumb_'.$v['savename'];
                    $img->open($file)->thumb(200,200)->save($thumb_file);
                    //水印图
                    $water_file=$upload->rootPath.$v['savepath'].'water_'.$v['savename'];
                    $png='./public/logo.png';
                    $img->open($file)->water($png,5,50)->save($water_file);
                    //$crops[]=$crop_file; //写入数组


                    $images_file[]=$file;
                    $thumbs[]=$thumb_file;
                    $waters[]=$water_file;
                }else{
                    if(is_file($file)){
                        unlink($file);//删除原图
                    }
                }
            }

            /*$_POST['images']=implode('|',$images_file); //将上传的文件转换成字符串
            $_POST['thumb']=implode('|',$thumbs); //将上传的文件转换成字符串
            $_POST['water']=implode('|',$waters); //将上传的文件转换成字符串*/

        }else{
            return $upload->getError(); //如果不成功就获取错误信息
        }
        return array(
            'images'=>$images_file,//原图
            'thumb'=>$thumbs,//缩略图
            'water'=>$waters,//水印图
        );

    }

    function test($files,$check='checked'){
        $checked=I('post.'.$check,array());
        foreach($files as $k=>$v){
            //如果图片的下标在$_post['checked']中，用户就没有删除此图，否则就是已经删除，此时要把服务器上的图片也删掉
            if(in_array($k,$checked)){
                if(id_file($v)){ //检测文件是否存在
                    unlink($v); //删除文件
                    unset($files[$k]); //将数组中对应的值删掉
                }
            }
        }
        return $files;
    }
}